<?php
class Instituciones_InformacionController extends Zend_Controller_Action {
    private $estructuraTabBoton;
    private $nav;
    private $infoUsuario;
    private $tabActual;
    private $botonHorizontalActual;
    private $botonVerticalActual;
    private $opcion;
    private $datos;
    private $infoinstitucion;
    private $parametros;
    private $codsnies;
	private $error;
	private $codsolicitud;
	private $_readonly;
	private $codinstitucion;

    public function init() {
        //Resumen Informacion de la Institucion (va en todos los actions
        $codtab = $this->_getParam("codtab", "1");
        $codboton = $this->_getParam("codboton", "1");
        $codboton2 = $this->_getParam("codboton2", "1");
        $this->error = $this->_getParam("error", false);
        $this->opcion = $codtab . "_" . $codboton . "_" . $codboton2;
        $this->datos["codtab"] = $codtab;
        $this->datos["codboton"] = $codboton;
        $this->datos["codboton2"] = $codboton2;
        $this->parametros = array("codtab"=>$codtab,
                                  "codboton"=>$codboton,
                                  "codboton2"=>$codboton2,
        );
        
        
        
        if ($this->_getParam("codinstitucion")) {
            $loggedUser = new Zend_Session_Namespace("loggedUser");
            $loggedUser->codinstitucion = $this->_getParam("codinstitucion");
            $loggedUser->lock();
            $this->parametros["codinstitucion"] = App_User::getCodigoInstitucion();
            
            $this->_readonly = true;
			$this->view->readonly = true;
            $this->_helper->layout()->setLayout("popup");
        }
        
        
        $codinstitucion = App_User::getCodigoInstitucion();
        
        $instituciones = new Instituciones_Model_Instituciones();
        $this->infoinstitucion = $instituciones->cargardatosInfo($codinstitucion);
        $this->view->infoInstitucion = $this->infoinstitucion;
        $this->codsnies = $this->infoinstitucion["ins_codigo"];
        
        $solicitud = new Solicitudes_Model_Solicitudes();
        $infosolicitud = $solicitud->getSolicitudIES($codinstitucion,5);
        if (!$infosolicitud){
            $datos_solicitud["codinstitucion"] = $codinstitucion;
            $datos_solicitud["tiposolicitud"] = 5;
            $datos_solicitud["actual"] = "S";
            $this->codsolicitud = $solicitud->guardarSolicitud($datos_solicitud);
        }
        $this->codsolicitud = $infosolicitud["codsolicitud"];
        
        $this->tabActual = $codtab;
        $this->botonHorizontalActual = $codboton;
        $this->botonVerticalActual = $codboton2;

        $this->nav = new App_Util_Navegacion();
        $this->nav->agregar_navegacion("Información de la institución", "", "Información de la institución");
        $this->view->nav = $this->nav;
        $this->view->title = App_User::getNombreInstitucion();
        $ValoresDominios = new Generales_Model_ValoresDominios();
        $estructuraInformacion = $ValoresDominios->cargarDatos("INFORMACION_IES");
        
//        Zend_Debug::dump($estructuraInformacion);
        
        $NormaIes = new Instituciones_Model_Normasies();
        $NormaIes->AjustarCompletitud($codinstitucion);
        for ($index = 0; $index < count($estructuraInformacion); $index++) {
			if($estructuraInformacion[$index]["codpadre"]==null) {
			    $estructuraInformacion[$index]["completo"]=$NormaIes->isCompleto($codinstitucion, $estructuraInformacion[$index]["codigo"]);
			    if($codtab == $estructuraInformacion[$index]["codigo"]) {
			        for ($k = 0; $k < count($estructuraInformacion); $k++) {
			        	if($estructuraInformacion[$k]["codpadre"] == $estructuraInformacion[$index]["codvalordominio"]) {
			        	    $estructuraInformacion[$k]["completo"]=false;
			        	    if($estructuraInformacion[$index]["completo"]) {
			        	        $estructuraInformacion[$k]["completo"]=true;
			        	    } else {
			        	        $temp_codigo = "{$codtab}_{$estructuraInformacion[$k]["codigo"]}";
//			        	        if ($temp_codigo =="2_6" ){
			        	            $estructuraInformacion[$k]["completo"]= true;
//			        	        }else{
			        	            $estructuraInformacion[$k]["completo"]=$NormaIes->isCompleto($codinstitucion, $temp_codigo);
//			        	        }
			        	    }
			        	}
			        }
			    }

			}
		}
		
//        $NormaIes = new Instituciones_Model_Normasies();
		$this->view->completitudIES =  $NormaIes->VerificarCompletitud($codinstitucion);
		
        $this->estructuraTabBoton = new App_Util_EstructuraTabBoton($estructuraInformacion, "/instituciones/informacion/index/", $this->parametros);
        $this->view->tabs = $this->estructuraTabBoton->getTabs();
        $this->view->botonesHorizontales = $this->estructuraTabBoton->getBotonHorizontal($codtab);
        $this->view->botonesVerticales = $this->estructuraTabBoton->getBotonVertical($codboton);
        
//        Zend_Debug::dump($codboton);
//        $this->_readonly = $this->_getParam("readonly",0);
//
//        if ($this->_readonly){
//            $sesion = new Zend_Session_Namespace("READONLY");
//    	    $sesion->readonly = $this->_readonly;
//        }
//
//        $this->view->readonly = true;
//		if (true) {
//			$this->_readonly = true;
//			$this->view->readonly = true;
//			$this->_helper->layout()->setLayout("popup");
//		}
    }

    public function indexAction() {
        $domConfig = Zend_Registry::get('domConfig');
        $appConfig = Zend_Registry::get("appConfig");
        
        $sesionNormas = new Zend_Session_Namespace("NORMAS");
        if (substr($this->opcion,0,1)=="1"){
            $sesionNormas->tiponorma = $domConfig->NORMAS_CNA->toArray();
            $sesionNormas->codinstancianorma = $domConfig->INSTANCIA_NORMAS->toArray();
        }else{
            $sesionNormas->tiponorma = $domConfig->NORMAS_INTERNAS->toArray();
            $sesionNormas->codinstancianorma = $domConfig->INSTANCIA_INTERNAS->toArray();
            $sesionNormas->coddocumento= $domConfig->TIPODOC_NORMAS->toArray();
        }
        $sesionNormas->snies = "";
        
        $NormaIes = new Instituciones_Model_Normasies();
//        Zend_Debug::dump($this->opcion);
        
        switch($this->opcion){
            case "1_1_1":
            case "2_1_1":
            case "2_2_1":
            case "2_3_1":
            case "2_4_1":
            case "2_5_1":
            case "2_6_1":
                $sesionNormas->adjunto = "N";
                $sesionNormas->requerido = true;
                $this->view->lectura = "N";
                $accion = $this->_getParam("accion");
        		     
		        if(is_null($accion)) {
		            $datos = $NormaIes->cargarUltimaNorma($this->opcion,App_User::getCodigoInstitucion());
		            if($datos && !is_null($datos)) {
		                $fechanorma = new Zend_Date($datos["fechanorma"]);
		                $datos["fechanorma"]=$fechanorma->toString($appConfig->fecha_formato_mostrar);
		                
		                $this->view->lectura = "S";
		                $sesionNormas->adjunto = "S";
		                $sesionNormas->requerido = false;
//		                if (substr($this->opcion,0,1)=="1"){
//		                    $datos["tiponormacna"]      = (!$this->error)?$domConfig->NORMAS_CNA->$datos["tiponormacna"]:$datos["tiponormacna"];
//		                    if ($datos["codinstancianorma"]!=7){
//		                        $datos["codinstancianorma"] = (!$this->error)?$domConfig->INSTANCIA_NORMAS->$datos["codinstancianorma"]:$datos["codinstancianorma"];
//		                    }
//		                }else{
//		                    $datos["tiponormacna"]      = (!$this->error)?$domConfig->NORMAS_INTERNAS->$datos["tiponormacna"]:$datos["tiponormacna"];
//		                    $datos["codinstancianorma"] = (!$this->error)?$domConfig->INSTANCIA_INTERNAS->$datos["codinstancianorma"]:$datos["codinstancianorma"];
//		                }
//		                if ($this->opcion=="2_6_1"){
//		                    $datos["tipodocumento"]      = $domConfig->TIPODOC_NORMAS->$datos["tipodocumento"];
//		                }
		                
//		                Zend_Debug::dump($datos);
		                
		                $datos["archivo"] = "";
			            $coddocumento = $NormaIes->getcodigoAdjunto($datos["codnorma"],1);
				        if ($coddocumento){
				             $adjunto = new Generales_Model_Documentos();
				             $datos_adjunto = $adjunto->cargarDatos($coddocumento);
					         $paramsDescarga=App_Util_SafeUrl::encriptar(array("evento"=>"ADJUNTO_SINTESIS",
																	  "archivo"=>$datos_adjunto["nombrecodificado"]) ,true);
							 $datos["archivo"] = "<a href=\"/cna/generales/archivo/download/".$paramsDescarga."\" class=\"file\" title=\"Descargar\">{$datos_adjunto['nombrereal']}</a>";
				        }
				        
				        if ($this->opcion=="2_4_1"){
					        $datos["archivo2"] = "";
				            $coddocumento2 = $NormaIes->getcodigoAdjunto($datos["codnorma"],2);
					        if ($coddocumento2){
					             $adjunto = new Generales_Model_Documentos();
					             $datos_adjunto2 = $adjunto->cargarDatos($coddocumento2);
						         $paramsDescarga2=App_Util_SafeUrl::encriptar(array("evento"=>"ADJUNTO_SINTESIS",
																		  "archivo"=>$datos_adjunto2["nombrecodificado"]) ,true);
								 $datos["archivo2"] = "<a href=\"/cna/generales/archivo/download/".$paramsDescarga2."\" class=\"file\" title=\"Descargar\">{$datos_adjunto2['nombrereal']}</a>";
					        }
					        $datos["archivo3"] = "";
					        $coddocumento3 = $NormaIes->getcodigoAdjunto($datos["codnorma"],3);
					        if ($coddocumento3){
					             $adjunto = new Generales_Model_Documentos();
					             $datos_adjunto3 = $adjunto->cargarDatos($coddocumento3);
						         $paramsDescarga3=App_Util_SafeUrl::encriptar(array("evento"=>"ADJUNTO_SINTESIS",
																		  "archivo"=>$datos_adjunto3["nombrecodificado"]) ,true);
								 $datos["archivo3"] = "<a href=\"/cna/generales/archivo/download/".$paramsDescarga3."\" class=\"file\" title=\"Descargar\">{$datos_adjunto3['nombrereal']}</a>";
					        }
					        $this->view->adjuntos = $datos;
				        }
		            }
		        } elseif($accion == "modificar" && !$this->error) {
		            $datos = $NormaIes->cargarNorma($this->_getParam("codnorma"));
		            $fechanorma = new Zend_Date($datos["fechanorma"]);
		            $datos["fechanorma"]=$fechanorma->toString($appConfig->fecha_formato_mostrar);
		            $sesionNormas->requerido = false;
		        }
		        
               	if ($this->error) {
		            $this->view->lectura = "N";
		            $sesionNormas->adjunto = "N";
		            $datos["archivo"] = "";
		        }
		        
		        $form = new Instituciones_Form_Norma();
		        $form->recoverFromRedirect();
		        
		        $form->makeStatic($this->_readonly);
		        
		        $datos["codtab"] = $this->datos["codtab"];
		        $datos["codboton"] = $this->datos["codboton"];
		        $datos["codboton2"] = $this->datos["codboton2"];
		        
		        $form->populate($datos);
		        $this->view->form = $form;
                $Normas = $NormaIes->getSelectFetchAll($this->opcion,App_User::getCodigoInstitucion());
                $this->view->datos = $Normas;
                $this->view->opcion = $this->opcion;
                
				if ($this->opcion=="2_1_1" && in_array($this->infoinstitucion["codorigen"],array(7,8))) {
//                if (true){
		            $datos2 = $NormaIes->cargarUltimaNorma("2_1_1_1",App_User::getCodigoInstitucion());
                    $fechanorma2 = new Zend_Date($datos2["fechanorma"]);
		            $datos2["fecharatificacion"]=$fechanorma2->toString($appConfig->fecha_formato_mostrar);
		            $form2 = new Instituciones_Form_RatificacionIES();
		            $form2->setAction($this->view->baseUrl("/instituciones/informacion/guardarratificacionies"));
                    $form2->recoverFromRedirect();
	                $datos2["codtab"] = $this->datos["codtab"];
			        $datos2["codboton"] = $this->datos["codboton"];
			        $datos2["codboton2"] = $this->datos["codboton2"];
			        $datos2["codnormainterna"] = "2_1_1_1";
			        $form2->populate($datos2);
			        $this->view->form2 = $form2;
			        
                   if (isset($datos2["codnorma"])){
	                   $coddocumento = $NormaIes->getcodigoAdjunto($datos2["codnorma"]);
					   if ($coddocumento){
					       $adjunto = new Generales_Model_Documentos();
					       $this->view->adjunto = $adjunto->cargarDatos($coddocumento);
					   }
                   }
		        }
            break;
            case "1_2_1":
               $sesionNormas->requerido = true;
               $instituciones = new Instituciones_Model_Instituciones();
               $this->view->datos_representante = $instituciones->getRepresentante($this->codsnies);
               $datos = $NormaIes->cargarUltimaNorma($this->opcion,App_User::getCodigoInstitucion());
	           $datos["codtab"] = $this->datos["codtab"];
		       $datos["codboton"] = $this->datos["codboton"];
		       $datos["codboton2"] = $this->datos["codboton2"];
               if (isset($datos["codnorma"])){
        		    $NormaIes->actualizarCompletitud($datos["codnorma"]);
                   $coddocumento = $NormaIes->getcodigoAdjunto($datos["codnorma"]);
				   if ($coddocumento){
				       $adjunto = new Generales_Model_Documentos();
				       $this->view->adjunto = $adjunto->cargarDatos($coddocumento);
				       $sesionNormas->requerido = false;
				   }
				   $this->view->form2 = $form2;
               }
               $form1 = new Instituciones_Form_Sintesis();
               $form1->recoverFromRedirect();
	           $form1->populate ( $datos );
	           $this->view->form1 = $form1;
            break;
            case "1_3_1":
               $InformacionIES = new Instituciones_Model_Informacionies();
               $datos = $NormaIes->cargarUltimaNorma($this->opcion,App_User::getCodigoInstitucion());
	           $datos["codtab"] = $this->datos["codtab"];
		       $datos["codboton"] = $this->datos["codboton"];
		       $datos["codboton2"] = $this->datos["codboton2"];
		       
               $datos_ies = $InformacionIES->cargardatos(array("codinstitucion"=>App_User::getCodigoInstitucion(),"codsolicitud"=>$this->codsolicitud));
               if (isset($datos_ies["sanciones"])){
                   $datos["sanciones"] =  $datos_ies["sanciones"];
               }
               if (isset($datos["codnorma"])){
                   $coddocumento = $NormaIes->getcodigoAdjunto($datos["codnorma"]);
				   if ($coddocumento){
				       $adjunto = new Generales_Model_Documentos();
				       $this->view->adjunto = $adjunto->cargarDatos($coddocumento);
				   }
               }
               $form1 = new Instituciones_Form_Declaracion();
               $form1->recoverFromRedirect();
	           $form1->populate ( $datos );
	           $this->view->form1 = $form1;
            break;
            case "3_1_1":
	            $datos = $NormaIes->cargarUltimaNorma($this->opcion,App_User::getCodigoInstitucion());
	            
		        $InformacionIES = new Instituciones_Model_Informacionies();
		        $datos_ies = $InformacionIES->cargardatos(array("codinstitucion"=>App_User::getCodigoInstitucion(),"codsolicitud"=>$this->codsolicitud));
		        		        
		        $formproyecto = new Instituciones_Form_Proyectoeducativo();
		        $formproyecto->recoverFromRedirect();
		        $datos_ies["codtab"] = $this->datos["codtab"];
		        $datos_ies["codboton"] = $this->datos["codboton"];
		        $datos_ies["codboton2"] = $this->datos["codboton2"];
		        
		        $formproyecto->populate($datos_ies);
    			$fechapei = new Zend_Date($datos_ies["fechapei"]);
    			$fechaproyecto = new Zend_Date($datos_ies["fechaproyecto"]);
    			$appConfig = Zend_Registry::get( "appConfig" );
    			$formproyecto->getElement("fechapei")->setValue($fechapei->toString($appConfig->fecha_formato_mostrar));
    			$formproyecto->getElement("fechaproyecto")->setValue($fechaproyecto->toString($appConfig->fecha_formato_mostrar));
		        
		        $this->view->formproyecto = $formproyecto;
		        
		        $datos["codtab"] = $this->datos["codtab"];
		        $datos["codboton"] = $this->datos["codboton"];
		        $datos["codboton2"] = $this->datos["codboton2"];
		        
                $form1 = new Instituciones_Form_Sintesis();
                $form1->recoverFromRedirect();
	            $form1->populate ( $datos );
	            $this->view->form1 = $form1;
		        
                if (isset($datos["codnorma"])){
                    $adjuntos = $NormaIes->getSelectAdjuntos($datos["codnorma"]);
                    $this->view->adjuntos = $adjuntos;
                }
            break;
            case "3_2_1":
//                Zend_Debug::dump($this->view->serverUrl());
                    $appConfig = Zend_Registry::get('appConfig');
                    $url_webservice = $appConfig->get("url_webservices_snies");
                try {
//	                echo "{$this->view->serverUrl()}/cna/wsdl/sniesprueba.wsdl";
//	                $client = new Zend_Soap_Client("{$this->view->serverUrl()}/cna/wsdl/sniesprueba.wsdl");
	                $client = new Zend_Soap_Client($url_webservice);
	                $WSParametroscnasnies = new Instituciones_Model_WSParametroscnasnies();
	                $WSParametroscnasnies->setIesCode(App_User::getCodigoInstitucion());
	                $this->view->ProgramasWS =  json_decode($client->obtenerProgramas($WSParametroscnasnies)->return);
	                
                    $this->view->cuadro_programas = $WSParametroscnasnies->getSumaProgramasNivel($this->view->ProgramasWS);
                } catch(Exception $e) {
				    echo $e->getMessage();
				    $this->view->ProgramasWS=$e->getTraceAsString();
				}
				
				try {
//	                $client = new Zend_Soap_Client("{$this->view->serverUrl()}/cna/wsdl/sniesprueba.wsdl");
	                $WSParametroscnasnies1 = new Instituciones_Model_WSParametroscnasnies();
	                $WSParametroscnasnies1->setIesCode(App_User::getCodigoInstitucion());

	                $ano = date("Y");
	                $semestre = "01";
	                $mes = intval(date("n"));
	                if ($mes<6){
	                    $ano = date("Y")-1;
	                    $semestre = "02";
	                }
	                // $ano = 2009;
//	                $semestre = "01";
	                $WSParametroscnasnies1->setAnnio($ano);
	                $WSParametroscnasnies1->setSemestre($semestre);
//	                $this->view->ProgramasWS1 =  json_decode($client->obtenerEstadisticasProgramasAll($WSParametroscnasnies1)->return);
//	                $this->view->datosprograma = $WSParametroscnasnies1->getSumaMatriculados($this->view->ProgramasWS1);
	                
	                
//	                $funciones = $client->getFunctions();
	                
	                $this->view->datosCuadro = array();
	                
    	            $this->view->cuadro_matriculados =  json_decode($client->obtenerMatriculadosIES($WSParametroscnasnies1)->return);
    	            $this->view->cuadro_graduados =  json_decode($client->obtenerGraduadosIES($WSParametroscnasnies1)->return);
    	            $this->view->datosCuadro = $WSParametroscnasnies1->getDatosCuadro($this->view->cuadro_programas,$this->view->cuadro_matriculados,$this->view->cuadro_graduados);
	                
                } catch(Exception $e) {
				    echo $e->getMessage();
				    $this->view->ProgramasWS1=$e->getTraceAsString();
				}
				
//				 Zend_Debug::dump($client);
				
        		$datos = $NormaIes->cargarUltimaNorma($this->opcion,App_User::getCodigoInstitucion());
				$datos["codtab"] = $this->datos["codtab"];
		        $datos["codboton"] = $this->datos["codboton"];
		        $datos["codboton2"] = $this->datos["codboton2"];
		        
		        $datos1 = $NormaIes->cargarUltimaNorma($this->opcion."_1",App_User::getCodigoInstitucion());
		        $datos["codnorma1"] = $datos1["codnorma"];
		        $datos["sintesis1"] = $datos1["sintesis"];
		        
                $form1 = new Instituciones_Form_Sintesis();
	            $form1->populate ( $datos );
	            $form1->recoverFromRedirect();
	            $this->view->form1 = $form1;
		        
                if (isset($datos["codnorma"])){
                    $adjuntos = $NormaIes->getSelectAdjuntos($datos["codnorma"]);
                    $this->view->adjuntos = $adjuntos;
                }
            break;
//           case "3_3_1":
//               try {
//	                $client = new Zend_Soap_Client("{$this->view->serverUrl()}/cna/wsdl/sniesprueba.wsdl");
//	                $WSParametroscnasnies = new Instituciones_Model_WSParametroscnasnies();
//	                $WSParametroscnasnies->setIesCode(App_User::getCodigoInstitucion());
//
//	                $ano = date("Y");
//	                $semestre = "01";
//	                $mes = date("n");
//	                if ($mes<6){
//	                    $ano = date("Y")-1;
//	                    $semestre = "02";
//	                }
//	                $WSParametroscnasnies->setAnnio($ano);
//	                $WSParametroscnasnies->setSemestre($semestre);
//	                $this->view->ProgramasWS =  json_decode($client->obtenerEstadisticasProgramas($WSParametroscnasnies)->return);
////	                $this->view->ProgramasWS =  json_decode($client->obtenerEstadisticasProgramasAll($WSParametroscnasnies)->return);
//	                Zend_Debug::dump($this->view->ProgramasWS);
//                } catch(Exception $e) {
//				    echo $e->getMessage();
//				    $this->view->ProgramasWS=$e->getTraceAsString();
//				}
//
//        		$datos = $NormaIes->cargarUltimaNorma($this->opcion,App_User::getCodigoInstitucion());
//				$datos["codtab"] = $this->datos["codtab"];
//		        $datos["codboton"] = $this->datos["codboton"];
//		        $datos["codboton2"] = $this->datos["codboton2"];
//
//                $form1 = new Instituciones_Form_Sintesis();
//                $form1->recoverFromRedirect();
//	            $form1->populate ( $datos );
//	            $this->view->form1 = $form1;
//
//                if (isset($datos["codnorma"])){
//                    $adjuntos = $NormaIes->getSelectAdjuntos($datos["codnorma"]);
//                    $this->view->adjuntos = $adjuntos;
//                }
//           break;
//           case "3_4_1":
           case "3_3_1":
//                try {
//	                $client = new Zend_Soap_Client("{$this->view->serverUrl()}/cna/wsdl/sniesprueba.wsdl");
//	                $client = new Zend_Soap_Client("http://snies.mineducacion.gov.co/cna/services/serviciosSNIESCNA?wsdl");
//	                $WSParametroscnasnies = new Instituciones_Model_WSParametroscnasnies();
//	                $WSParametroscnasnies->setIesCode(App_User::getCodigoInstitucion());
//	                $WSParametroscnasnies->setAnnio(date("Y")-1);
//	                $WSParametroscnasnies->setSemestre("02");
//	                $this->view->ProgramasWS =  json_decode($client->obtenerEstadisticasDocentes($WSParametroscnasnies)->return);
////	                Zend_Debug::dump($this->view->ProgramasWS);
//                } catch(Exception $e) {
//				    //echo $e->getMessage();
//				    $this->view->ProgramasWS=$e->getTraceAsString();
//				}
				
        		$datos = $NormaIes->cargarUltimaNorma($this->opcion,App_User::getCodigoInstitucion());
				$datos["codtab"] = $this->datos["codtab"];
		        $datos["codboton"] = $this->datos["codboton"];
		        $datos["codboton2"] = $this->datos["codboton2"];
		        
		        $datos1 = $NormaIes->cargarUltimaNorma($this->opcion."_1",App_User::getCodigoInstitucion());
		        $datos["codnorma1"] = $datos1["codnorma"];
		        $datos["sintesis1"] = $datos1["sintesis"];
		        
                $form1 = new Instituciones_Form_Sintesis();
                $form1->recoverFromRedirect();
	            $form1->populate ( $datos );
	            $this->view->form1 = $form1;
		        
                if (isset($datos["codnorma"])){
                    $adjuntos = $NormaIes->getSelectAdjuntos($datos["codnorma"]);
                    $this->view->adjuntos = $adjuntos;
                }
            break;
           case "4_1_1":
                $InformacionIes = new Instituciones_Model_Informacionies();
                $datos_instalaciones = $InformacionIes->buscarInstalacionesFisicas(App_User::getCodigoInstitucion());
                
                $datos_instalaciones["codtab"] = $this->datos["codtab"];
		        $datos_instalaciones["codboton"] = $this->datos["codboton"];
		        $datos_instalaciones["codboton2"] = $this->datos["codboton2"];
                
                $form_instalaciones = new Instituciones_Form_Instalaciones();
                $form_instalaciones->recoverFromRedirect();
                $form_instalaciones->populate ( $datos_instalaciones );
                $this->view->form_instalaciones=$form_instalaciones;
                
        		$datos = $NormaIes->cargarUltimaNorma($this->opcion,App_User::getCodigoInstitucion());
				$datos["codtab"] = $this->datos["codtab"];
		        $datos["codboton"] = $this->datos["codboton"];
		        $datos["codboton2"] = $this->datos["codboton2"];
		        
                $form1 = new Instituciones_Form_Sintesis();
                $form1->recoverFromRedirect();
	            $form1->populate ( $datos );
	            $this->view->form1 = $form1;
		        
                if (isset($datos["codnorma"])){
                    $adjuntos = $NormaIes->getSelectAdjuntos($datos["codnorma"]);
                    $this->view->adjuntos = $adjuntos;
                }
            break;
           case "4_2_1":
                $sesionNormas->subtiporecurso = 1;
                $InformacionIes = new Instituciones_Model_Informacionies();
                $accion = $this->_getParam("accion");
                if($accion == "modificar") {
		            $datos_recursos = $InformacionIes->buscarRecurso($this->_getParam("codrecursoies"),1);
		        }
		        
                $recursos = $InformacionIes->buscarRecursosIES(App_User::getCodigoInstitucion(),1);
                if ($recursos) $this->view->recursos = $recursos;

                $datos_recursos["codtab"] = $this->datos["codtab"];
		        $datos_recursos["codboton"] = $this->datos["codboton"];
		        $datos_recursos["codboton2"] = $this->datos["codboton2"];
                		        
                $form_recursos = new Instituciones_Form_Recursos();
                $form_recursos->populate ( $datos_recursos );
                $this->view->form_recursos = $form_recursos;
                
        		$datos = $NormaIes->cargarUltimaNorma($this->opcion,App_User::getCodigoInstitucion());
				$datos["codtab"] = $this->datos["codtab"];
		        $datos["codboton"] = $this->datos["codboton"];
		        $datos["codboton2"] = $this->datos["codboton2"];
		        
                $form1 = new Instituciones_Form_Sintesis();
	            $form1->populate ( $datos );
	            $this->view->form1 = $form1;
		        
                if (isset($datos["codnorma"])){
                    $adjuntos = $NormaIes->getSelectAdjuntos($datos["codnorma"]);
                    $this->view->adjuntos = $adjuntos;
                }
            break;
           case "4_3_1":
                $InformacionIes = new Instituciones_Model_Informacionies();
                $accion = $this->_getParam("accion");
	            $recursos = $InformacionIes->buscarRecursosIES(App_User::getCodigoInstitucion(),2);
	            if ($recursos) $this->view->recursos = $recursos;
	                                
                if($accion == "crear1" || $accion == "modificar1") {
                    if($accion == "modificar1") $datos_recursos = $InformacionIes->buscarRecurso($this->_getParam("codrecursoies"));
	
	                $datos_recursos["codtab"] = $this->datos["codtab"];
			        $datos_recursos["codboton"] = $this->datos["codboton"];
			        $datos_recursos["codboton2"] = $this->datos["codboton2"];
	
			        $sesionNormas->subtiporecurso = 2;
	                $form_recursos = new Instituciones_Form_Recursos();
	                $form_recursos->populate ( $datos_recursos );
	                $this->view->form_recursos = $form_recursos;
                }

	                $laboratorios = $InformacionIes->buscarRecursosIES(App_User::getCodigoInstitucion(),3);
	                if ($laboratorios) $this->view->laboratorios = $laboratorios;
	                                
                if($accion == "crear2" || $accion == "modificar2") {
                    if ($accion == "modificar2")  $datos_laboratorio = $InformacionIes->buscarRecurso($this->_getParam("codrecursoies"));

	                $datos_laboratorio["codtab"] = $this->datos["codtab"];
			        $datos_laboratorio["codboton"] = $this->datos["codboton"];
			        $datos_laboratorio["codboton2"] = $this->datos["codboton2"];
	                
			        $sesionNormas->subtiporecurso = 3;
	                $form_laboratorios = new Instituciones_Form_Recursos();
	                $form_laboratorios->populate ( $datos_laboratorio );
	                $form_laboratorios->setName("laboratorios");
	                $this->view->form_laboratorios = $form_laboratorios;
                }
        		$datos = $NormaIes->cargarUltimaNorma($this->opcion,App_User::getCodigoInstitucion());
				$datos["codtab"] = $this->datos["codtab"];
		        $datos["codboton"] = $this->datos["codboton"];
		        $datos["codboton2"] = $this->datos["codboton2"];
		        
                $form1 = new Instituciones_Form_Sintesis();
	            $form1->populate ( $datos );
	            $this->view->form1 = $form1;
		        
                if (isset($datos["codnorma"])){
                    $adjuntos = $NormaIes->getSelectAdjuntos($datos["codnorma"]);
                    $this->view->adjuntos = $adjuntos;
                }
            break;
           case "4_4_1":
        		$datos = $NormaIes->cargarUltimaNorma($this->opcion,App_User::getCodigoInstitucion());
				$datos["codtab"] = $this->datos["codtab"];
		        $datos["codboton"] = $this->datos["codboton"];
		        $datos["codboton2"] = $this->datos["codboton2"];
		        
                $form1 = new Instituciones_Form_Sintesis();
                $form1->recoverFromRedirect();
	            $form1->populate ( $datos );
	            $this->view->form1 = $form1;
		        
                if (isset($datos["codnorma"])){
                    $adjuntos = $NormaIes->getSelectAdjuntos($datos["codnorma"]);
                    $this->view->adjuntos = $adjuntos;
                }
            break;
        }
        
        $this->view->codnorma_ultima = null;
        if (isset($datos["codnorma"])) {
            $this->view->codnorma_ultima = $datos["codnorma"];
        }
        $vista = str_replace("_", "", $this->opcion);
        $this->render($vista);
    }

    public function guardarnormaAction() {
        $form = new Instituciones_Form_Norma();
        $form->setAttrib('enctype', 'multipart/form-data');
        $NormaIes = new Instituciones_Model_Normasies();
        if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) {
            $otrainstancia = $form->getValue("otrainstancia");
            $domConfig = Zend_Registry::get('domConfig');
            $error = false;
            
        	$array_normas = $domConfig->NORMAS_INTERNAS->toArray();
	        $otranorma = $form->getValue("otranorma");
        	if(!empty($otranorma) && in_array($otranorma,$array_normas)) {
				$form->getElement("otranorma")->addError("El nombre debe ser diferente a los ya establecidos");
			    $error = true;
	        }

	        if ($this->opcion=="1_1_1"){
	            $array_instancianorma = $domConfig->INSTANCIA_NORMAS->toArray();
	        }else{
	            $array_instancianorma = $domConfig->INSTANCIA_INTERNAS->toArray();
	        }
	        if(!empty($otrainstancia) && in_array($otrainstancia,$array_instancianorma)) {
				$form->getElement("otrainstancia")->addError("El nombre debe ser diferente a los ya establecidos");
			    $error = true;
	        }
	        
	         if ($this->opcion=="2_6_1"){
	             $array_tipodoc = $domConfig->TIPODOC_NORMAS->toArray();
	             $otrodocumento = $form->getValue("otrodocumento");
	             if(in_array($otrodocumento,$array_tipodoc)) {
				    $form->getElement("otrodocumento")->addError("El nombre debe ser diferente a los ya establecidos");
			        $error = true;
	            }
	         }
	        
	        if ($error){
	            $form->setStateRedirect();
			} else {
		            try {
		                $datos["codnorma"] = $this->_getParam("codnorma");
		                $datos["codusuario"] = App_User::getCodigoUsuario();
		                $datos["codinstitucion"] = App_User::getCodigoInstitucion();
		                $datos["codsolicitud"] = $this->codsolicitud;
		                $datos["tiponormacna"] = $this->_getParam("tiponormacna");
		                $datos["codnormainterna"] = $this->opcion;
		                $datos["numeronorma"] = $this->_getParam("numeronorma");
		                $datos["fechanorma"] = $this->_getParam("fechanorma");
		                $datos["codinstancianorma"] = $this->_getParam("codinstancianorma");
		                $datos["sintesis"] = $this->_getParam("sintesis");
		                $datos["archivo"] = $this->_getParam("archivo");
		                $datos["otranorma"] = ($datos["tiponormacna"]==3)?$this->_getParam("otranorma"):"";
		                
		               if ($this->opcion=="1_1_1"){
		                    $datos["otrainstancia"] = ($datos["codinstancianorma"]==7)?$this->_getParam("otrainstancia"):"";
		               }else{
		                    $datos["otrainstancia"] = ($datos["codinstancianorma"]==6)?$this->_getParam("otrainstancia"):"";
		               }
		                
		                
		                if ($this->opcion=="2_6_1"){
		                    $datos["tipodocumento"] = $this->_getParam("tipodocumento");
		                    $datos["otrodocumento"] = ($datos["tipodocumento"]==7)?$this->_getParam("otrodocumento"):"";
		                }
		
		                $codnorma = $NormaIes->guardarNorma($datos);
		                $codnorma = (empty($codnorma))? $datos["codnorma"] : $codnorma;
		                
		                $datos_adj = $form->archivo->getFileInfo();
		                $ext = pathinfo($datos_adj["archivo"]["name"], PATHINFO_EXTENSION);
		                $nuevo_nombre = md5(uniqid() . $datos_adj["archivo"]["name"]) . "." . $ext;
		                $form->archivo->addFilter('Rename', array('target'=>$form->archivo->getDestination(). "/{$nuevo_nombre}" ));
		                if($form->archivo->receive() && !empty($datos_adj["archivo"]["name"])) {
		                    $datos_archivo["nombrereal"] = $datos_adj["archivo"]["name"];
		                    $datos_archivo["tipomime"] = $datos_adj["archivo"]["type"];
		                    $datos_archivo["tamano"] = $datos_adj["archivo"]["size"];
		                    $datos_archivo["nombrecodificado"] = $nuevo_nombre;
		                    $datos_archivo["codusuario"] = App_User::getCodigoUsuario();
		                    $datos_archivo["codnorma"] = $codnorma;
		                    $datos_archivo["tipo"] = 1;
		
		                    $coddocumento = $NormaIes->getcodigoAdjunto($codnorma,1);
		                    if($coddocumento) {
		                        $NormaIes->eliminarAdjuntoNorma($coddocumento);
		                    }
		                    $NormaIes->guardarAdjuntoNorma($datos_archivo);
		                }
		                 if ($this->opcion=="2_4_1"){
		                    $datos_adj = $form->archivo2->getFileInfo();
			                $ext = pathinfo($datos_adj["archivo2"]["name"], PATHINFO_EXTENSION);
			                $nuevo_nombre = md5(uniqid() . $datos_adj["archivo2"]["name"]) . "." . $ext;
			                $form->archivo2->addFilter('Rename', array('target'=>$form->archivo2->getDestination(). "/{$nuevo_nombre}" ));
			                if($form->archivo2->receive() && !empty($datos_adj["archivo2"]["name"])) {
			                    $datos_archivo["nombrereal"] = $datos_adj["archivo2"]["name"];
			                    $datos_archivo["tipomime"] = $datos_adj["archivo2"]["type"];
			                    $datos_archivo["tamano"] = $datos_adj["archivo2"]["size"];
			                    $datos_archivo["nombrecodificado"] = $nuevo_nombre;
			                    $datos_archivo["codusuario"] = App_User::getCodigoUsuario();
			                    $datos_archivo["codnorma"] = $codnorma;
			                    $datos_archivo["tipo"] = 2;
			
			                    $coddocumento = $NormaIes->getcodigoAdjunto($codnorma,2);
			                    if($coddocumento) {
			                        $NormaIes->eliminarAdjuntoNorma($coddocumento);
			                    }
			                    $NormaIes->guardarAdjuntoNorma($datos_archivo);
			                }
			                
			                $datos_adj = $form->archivo3->getFileInfo();
		                 	$ext = pathinfo($datos_adj["archivo3"]["name"], PATHINFO_EXTENSION);
			                $nuevo_nombre = md5(uniqid() . $datos_adj["archivo3"]["name"]) . "." . $ext;
			                $form->archivo3->addFilter('Rename', array('target'=>$form->archivo3->getDestination(). "/{$nuevo_nombre}" ));
			                if($form->archivo3->receive() && !empty($datos_adj["archivo3"]["name"])) {
			                    $datos_archivo["nombrereal"] = $datos_adj["archivo3"]["name"];
			                    $datos_archivo["tipomime"] = $datos_adj["archivo3"]["type"];
			                    $datos_archivo["tamano"] = $datos_adj["archivo3"]["size"];
			                    $datos_archivo["nombrecodificado"] = $nuevo_nombre;
			                    $datos_archivo["codusuario"] = App_User::getCodigoUsuario();
			                    $datos_archivo["codnorma"] = $codnorma;
			                    $datos_archivo["tipo"] = 3;
			
			                    $coddocumento = $NormaIes->getcodigoAdjunto($codnorma,3);
			                    if($coddocumento) {
			                        $NormaIes->eliminarAdjuntoNorma($coddocumento);
			                    }
			                    $NormaIes->guardarAdjuntoNorma($datos_archivo);
			                }
		                 }
		                if ($this->opcion!="2_1_6"){
		                    $NormaIes->actualizarCompletitud($codnorma);
		                }
		                $this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
		            } catch(Exception $e) {
		                $this->view->priorityMessenger($e->getMessage(), "error");
		            }
				}
        } else {
            $form->setStateRedirect();
//            foreach($form->getMessages() as $key => $value) {
//                $this->view->priorityMessenger("{$form->getElement($key)->getLabel()} " . array_shift($value), "error");
//            }
            $this->parametros["error"]=true;
            $codnorma = $this->_getParam("codnorma");
            $this->parametros["accion"] = (empty($codnorma))?"crear":"modificar";
        }
        $this->_helper->redirector("index", null, null, App_Util_SafeUrl::encriptar($this->parametros, false));
    }

    public function guardarsintesisAction() {
        $form = new Instituciones_Form_Sintesis();
        $NormaIes = new Instituciones_Model_Normasies();
        if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) {
            try {
                $error = false;
		        if($this->opcion=="3_2_1" || $this->opcion=="3_3_1"){
		            $sintesis1 = $form->getValue("sintesis1");
		            if  (empty($sintesis1)) {
					    $form->getElement("sintesis1")->addError("Es requerido, no puede estar vacío");
				        $error = true;
			        }
                }
                if ($error){
                	$form->setStateRedirect();
//	                if(!empty($accion)){
//                        $this->parametros["accion"] = $accion;
//	                }
               }else{
	                $datos["codnorma"] = $this->_getParam("codnorma");
	                $datos["codusuario"] = App_User::getCodigoUsuario();
	                $datos["codinstitucion"] = App_User::getCodigoInstitucion();
	                $datos["codsolicitud"] = $this->codsolicitud;
	                $datos["sintesis"] = $this->_getParam("sintesis");
	                $datos["codnormainterna"] = $this->opcion;
	                $codnorma = $NormaIes->guardarNorma($datos);
	                
					switch($this->opcion){
					    case "3_2_1":
					    case "3_3_1":
	                        $datos1["codnorma"]   = $this->_getParam("codnorma1");
	                        $datos1["sintesis"]     = $this->_getParam("sintesis1");
	                        $datos1["codnormainterna"] = $this->opcion."_1";
	                        $datos1["codusuario"] = App_User::getCodigoUsuario();
	                        $datos1["codinstitucion"] = App_User::getCodigoInstitucion();
	                        $datos1["codsolicitud"] = $this->codsolicitud;
	                        $codnorma1 = $NormaIes->guardarNorma($datos1);
	                    break;
					}
	                $NormaIes->actualizarCompletitud($codnorma);
	                
	                $codnorma = (empty($codnorma))? $datos["codnorma"] : $codnorma;
	                $datos_adj = $form->archivo->getFileInfo();
	                $ext = pathinfo($datos_adj["archivo"]["name"], PATHINFO_EXTENSION);
	                $nuevo_nombre = md5(uniqid() . $datos_adj["archivo"]["name"]) . "." . $ext;
	                $form->archivo->addFilter('Rename', array('target'=>$form->archivo->getDestination(). "/{$nuevo_nombre}" ));
	                if($form->archivo->receive() && !empty($datos_adj["archivo"]["name"])) {
	                    $datos_archivo["nombrereal"] = $datos_adj["archivo"]["name"];
	                    $datos_archivo["tipomime"] = $datos_adj["archivo"]["type"];
	                    $datos_archivo["tamano"] = $datos_adj["archivo"]["size"];
	                    $datos_archivo["nombrecodificado"] = $nuevo_nombre;
	                    $datos_archivo["codusuario"] = App_User::getCodigoUsuario();
	                    $datos_archivo["codnorma"] = $codnorma;
	                    $datos_archivo["tipo"] = 1;
	
	                    $coddocumento = $NormaIes->getcodigoAdjunto($codnorma,1);
	                    if($coddocumento && in_array($this->opcion,array("1_2_1"))) {
	                        $NormaIes->eliminarAdjuntoNorma($coddocumento);
	                    }
	                    $NormaIes->guardarAdjuntoNorma($datos_archivo);
	                }
	                $this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
                }
            } catch(Exception $e) {
                $this->view->priorityMessenger($e->getMessage(), "error");
            }
        } else {
            $form->setStateRedirect();
//            foreach($form->getMessages() as $key => $value) {
//                $this->view->priorityMessenger("{$form->getElement($key)->getLabel()} " . array_shift($value), "error");
//            }
        }
        $this->_helper->redirector("index", null, null, App_Util_SafeUrl::encriptar($this->parametros, false));
    }
    
    public function eliminarnormaAction() {
        $form = new Instituciones_Form_Norma();
        $NormaIes = new Instituciones_Model_Normasies();
        try {
            $NormaIes->eliminarNorma($this->_getParam("codnorma"));
            $NormaIes->actualizarCompletitud($this->_getParam("codnorma_ultima"));
            $this->view->priorityMessenger("El registro se eliminó correctamente", "success");
        } catch(Exception $e) {
            $this->view->priorityMessenger($e->getMessage(), "error");
        }
        $this->_helper->redirector("index", null, null, App_Util_SafeUrl::encriptar($this->parametros, false));
    }

    public function guardaradjuntoAction() {
        $form = new Instituciones_Form_Adjuntos();
        $form->setAttrib('enctype', 'multipart/form-data');
        if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) {
            try {
                $datos_adj = $form->archivo->getFileInfo();
                $ext = pathinfo($datos_adj["archivo"]["name"], PATHINFO_EXTENSION);
                $nuevo_nombre = md5(uniqid() . $datos_adj["archivo"]["name"]) . "." . $ext;
//                $form->archivo->addFilter('Rename', array('target'=>$_SERVER['DOCUMENT_ROOT'] . "/cna/uploads/" . $nuevo_nombre ));
                $form->archivo->addFilter('Rename', array('target'=>$form->archivo->getDestination(). "/{$nuevo_nombre}" ));
                if($form->archivo->receive() && !empty($datos_adj["archivo"]["name"])) {
                    $datos_archivo["nombrereal"] = $datos_adj["archivo"]["name"];
                    $datos_archivo["tipomime"] = $datos_adj["archivo"]["type"];
                    $datos_archivo["tamano"] = $datos_adj["archivo"]["size"];
                    $datos_archivo["nombrecodificado"] = $nuevo_nombre;
                    $datos_archivo["codusuario"] = App_User::getCodigoUsuario();
                    $datos_archivo["codnorma"] = $this->_getParam("codnorma");;
                    $datos_archivo["tipo"] = 1;
                    
                    $NormaIes = new Instituciones_Model_Normasies();
                    $coddocumento = $NormaIes->getcodigoAdjunto($datos_archivo["codnorma"]);
                    if (in_array($this->opcion,array("1_2_1"))){
	                    if($coddocumento) {
	                        $NormaIes->eliminarAdjuntoNorma($coddocumento);
	                    }
                    }
                    $NormaIes->guardarAdjuntoNorma($datos_archivo);
                    $NormaIes->actualizarCompletitud($datos_archivo["codnorma"]);
                    $this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
                }
              } catch(Exception $e) {
                   $this->view->priorityMessenger($e->getMessage(), "error");
              }
        } else {
//            foreach($form->getMessages() as $key => $value) {
//                $this->view->priorityMessenger("{$form->getElement($key)->getLabel()} " . array_shift($value), "error");
//            }
        }
        $this->_helper->redirector("index", null, null, App_Util_SafeUrl::encriptar($this->parametros, false));
    }

    public function eliminaradjuntoAction() {
        $coddocumento = $this->_getParam("coddocumento");
        try {
            $NormaIes = new Instituciones_Model_Normasies();
            $NormaIes->eliminarAdjuntoNorma($coddocumento);
            $NormaIes->actualizarCompletitud($this->_getParam("codnorma"));
            $this->view->priorityMessenger("El archivo se eliminó correctamente", "success");
        } catch(Exception $e) {
            $this->view->priorityMessenger($e->getMessage(), "error");
        }
        $this->_helper->redirector("index", null, null, App_Util_SafeUrl::encriptar($this->parametros, false));
    }

    public function guardardeclaracionAction() {
        $form = new Instituciones_Form_Declaracion();
        if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) {
             $sanciones = $this->_getParam("sanciones");
             $sintesis = $this->_getParam("sintesis");
             if($sanciones=="S" && empty($sintesis)) {
					$form->getElement("sintesis")->addError("Los motivos de la sanción son requeridos");
					$form->setStateRedirect();
			 } else {
		            try {
		                $datos["codnorma"] = $this->_getParam("codnorma");
		                $datos["codusuario"] = App_User::getCodigoUsuario();
		                $datos["codinstitucion"] = App_User::getCodigoInstitucion();
		                $datos["codsolicitud"] = $this->codsolicitud;
		                $datos["codnormainterna"] = $this->opcion;
		                $datos["sintesis"] = (!empty($sintesis))?$sintesis:"LA IES MANIFIESTA NO HABER SIDO OBJETO DE SANCIONES";
		                $datos["archivo"] = $this->_getParam("archivo");
		
		                $datos_ies["codinstitucion"] = App_User::getCodigoInstitucion();
		                $datos_ies["sanciones"] = $this->_getParam("sanciones");
		                $InformacionIES = new Instituciones_Model_Informacionies();
		                $InformacionIES->guardarInformacionIES($datos_ies);
		                
		                $NormaIes = new Instituciones_Model_Normasies();
		                $codnorma = $NormaIes->guardarNorma($datos);
		                $codnorma = (empty($codnorma))? $datos["codnorma"] : $codnorma;
		                
		                $datos_adj = $form->archivo->getFileInfo();
		                $ext = pathinfo($datos_adj["archivo"]["name"], PATHINFO_EXTENSION);
		                $nuevo_nombre = md5(uniqid() . $datos_adj["archivo"]["name"]) . "." . $ext;
		//                $form->archivo->addFilter('Rename', array('target'=>$_SERVER['DOCUMENT_ROOT'] . "/cna/uploads/" . $nuevo_nombre ));
		                $form->archivo->addFilter('Rename', array('target'=>$form->archivo->getDestination(). "/{$nuevo_nombre}" ));
		                if($form->archivo->receive() && !empty($datos_adj["archivo"]["name"])) {
		                    $datos_archivo["nombrereal"] = $datos_adj["archivo"]["name"];
		                    $datos_archivo["tipomime"] = $datos_adj["archivo"]["type"];
		                    $datos_archivo["tamano"] = $datos_adj["archivo"]["size"];
		                    $datos_archivo["nombrecodificado"] = $nuevo_nombre;
		                    $datos_archivo["codusuario"] = App_User::getCodigoUsuario();
		                    $datos_archivo["codnorma"] = $codnorma;
		                    $datos_archivo["tipo"] = 1;
		
		                    $coddocumento = $NormaIes->getcodigoAdjunto($codnorma);
		                    if($coddocumento) {
		                        $NormaIes->eliminarAdjuntoNorma($coddocumento);
		                    }
		                    $NormaIes->guardarAdjuntoNorma($datos_archivo);
		                }
		                $NormaIes->actualizarCompletitud($codnorma);
		                $this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
		            } catch(Exception $e) {
		                $this->view->priorityMessenger($e->getMessage(), "error");
		            }
			}
        } else {
            $form->setStateRedirect();
        }
        $this->_helper->redirector("index", null, null, App_Util_SafeUrl::encriptar($this->parametros, false));
    }
    
    public function guardardatosiesAction() {
        $form = new Instituciones_Form_Proyectoeducativo();
        if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) {
            try {
                $InformacionIES = new Instituciones_Model_Informacionies();
                $datos["codinstitucion"] = App_User::getCodigoInstitucion();
                $datos["fechaproyecto"] = $this->_getParam("fechaproyecto");
                $datos["fechapei"] = $this->_getParam("fechapei");
                $datos["mision"] = $this->_getParam("mision");
                $datos["vision"] = $this->_getParam("vision");
                $datos["principios"] = $this->_getParam("principios");
                $InformacionIES->guardarInformacionIES($datos);
                $this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
            } catch(Exception $e) {
                $this->view->priorityMessenger($e->getMessage(), "error");
            }
        } else {
            $form->setStateRedirect();
//            foreach($form->getMessages() as $key => $value) {
//                $this->view->priorityMessenger("{$form->getElement($key)->getLabel()} " . array_shift($value), "error");
//            }
        }
        $this->_helper->redirector("index", null, null, App_Util_SafeUrl::encriptar($this->parametros, false));
    }

    public function guardarinstalacionesAction() {
        $form = new Instituciones_Form_Instalaciones();
        $InformacionIes = new Instituciones_Model_Informacionies();
        if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) {
            try {
                $InformacionIes->eliminarInstalacionesFisicas(App_User::getCodigoInstitucion());
                $datos = $this->getRequest()->getPost();
                unset($datos["codtab"]);
                unset($datos["codboton"]);
                unset($datos["codboton2"]);
                unset($datos["btnSubmit"]);
                
                $datos_insert["codinstitucion"] = App_User::getCodigoInstitucion();
                foreach($datos as $key =>$value){
                    if (substr($key,0,4)!="suma"){
	                    list($campo,$codinstalacion,$tipotenecia) = explode("_",$key);
	                    $datos_insert[$campo] = $value;
	                    if ($campo=="area" || intval($codinstalacion)>=30){
	                        $datos_insert["codinstalacion"] = $codinstalacion;
	                        $datos_insert["tipotenencia"] = $tipotenecia;
	                        $InformacionIes->guardarInstalacionesFisicas($datos_insert);
	                    }
                    }
                }
                $this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
            } catch(Exception $e) {
                $this->view->priorityMessenger($e->getMessage(), "error");
            }
        } else {
            $form->setStateRedirect();
//            foreach($form->getMessages() as $key => $value) {
//                $this->view->priorityMessenger("{$form->getElement($key)->getLabel()} " . array_shift($value), "error");
//            }
        }
        $this->_helper->redirector("index", null, null, App_Util_SafeUrl::encriptar($this->parametros, false));
    }

    public function guardarrecursosAction() {
        $form = new Instituciones_Form_Recursos();
        if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) {
            try {
                $InformacionIES = new Instituciones_Model_Informacionies();
                $datos["codrecursoies"]     = $this->_getParam("codrecursoies");
                $datos["codinstitucion"]  = App_User::getCodigoInstitucion();
                $datos["subtiporecurso"]  = $this->_getParam("subtiporecurso");
                $datos["nombrerecurso"]   = $this->_getParam("nombrerecurso");
                $datos["tiporecurso"]     = $this->_getParam("tiporecurso");
                $datos["cantidad"]        = $this->_getParam("cantidad");
                $datos["ubicacion"]       = $this->_getParam("ubicacion");
                $datos["descripcion"]     = $this->_getParam("descripcion");
                $datos["tipounidadacademica"]     = $this->_getParam("tipounidadacademica");
                $datos["otrorecurso"] = ($datos["tiporecurso"]==8)?$this->_getParam("otrorecurso"):NULL;
                $datos["otraunidad"] = ($datos["tipounidadacademica"]==3)?$this->_getParam("otraunidad"):NULL;
                $InformacionIES->guardarRecursosIES($datos);
                $this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
            } catch(Exception $e) {
                $this->view->priorityMessenger($e->getMessage(), "error");
            }
        } else {
            foreach($form->getMessages() as $key => $value) {
                $this->view->priorityMessenger("{$form->getElement($key)->getLabel()} " . array_shift($value), "error");
            }
        }
        $this->_helper->redirector("index", null, null, App_Util_SafeUrl::encriptar($this->parametros, false));
    }
    
    public function eliminarrecursoAction() {
        $codrecursoies = $this->_getParam("codrecursoies");
        try {
            $InformacionIES = new Instituciones_Model_Informacionies();
            $InformacionIES->eliminarRecurso($codrecursoies);
            $this->view->priorityMessenger("El registro se eliminó correctamente", "success");
        } catch(Exception $e) {
            $this->view->priorityMessenger($e->getMessage(), "error");
        }
        $this->_helper->redirector("index", null, null, App_Util_SafeUrl::encriptar($this->parametros, false));
    }
    
    public function guardarratificacioniesAction() {
        $form = new Instituciones_Form_RatificacionIES();
        $form->setAttrib('enctype', 'multipart/form-data');
        $NormaIes = new Instituciones_Model_Normasies();
        if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())) {
            try {
                $datos["codnorma"] = $this->_getParam("codnorma");
                $datos["codusuario"] = App_User::getCodigoUsuario();
                $datos["codinstitucion"] = App_User::getCodigoInstitucion();
                $datos["codsolicitud"] = $this->codsolicitud;
                $datos["tiponormacna"] = 2;
                $datos["numeronorma"] = $this->_getParam("numeronorma");
                $datos["fechanorma"] = $this->_getParam("fecharatificacion");
                $datos["codnormainterna"] = $this->_getParam("codnormainterna");
                
                $codnorma = $NormaIes->guardarNorma($datos);
                $codnorma = (empty($codnorma))? $datos["codnorma"] : $codnorma;
                
                $datos_adj = $form->archivo->getFileInfo();
                $ext = pathinfo($datos_adj["archivo"]["name"], PATHINFO_EXTENSION);
                $nuevo_nombre = md5(uniqid() . $datos_adj["archivo"]["name"]) . "." . $ext;
                $form->archivo->addFilter('Rename', array('target'=>$form->archivo->getDestination(). "/{$nuevo_nombre}" ));
                if($form->archivo->receive() && !empty($datos_adj["archivo"]["name"])) {
                    $datos_archivo["nombrereal"] = $datos_adj["archivo"]["name"];
                    $datos_archivo["tipomime"] = $datos_adj["archivo"]["type"];
                    $datos_archivo["tamano"] = $datos_adj["archivo"]["size"];
                    $datos_archivo["nombrecodificado"] = $nuevo_nombre;
                    $datos_archivo["codusuario"] = App_User::getCodigoUsuario();
                    $datos_archivo["codnorma"] = $codnorma;
                    $datos_archivo["tipo"] = 1;

                    $coddocumento = $NormaIes->getcodigoAdjunto($codnorma,1);
                    if($coddocumento) {
                        $NormaIes->eliminarAdjuntoNorma($coddocumento);
                    }
                    $NormaIes->guardarAdjuntoNorma($datos_archivo);
                }
                $this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
            } catch(Exception $e) {
                $this->view->priorityMessenger($e->getMessage(), "error");
            }
        } else {
            $form->setStateRedirect();
        }
        $this->_helper->redirector("index", null, null, App_Util_SafeUrl::encriptar($this->parametros, false));
    }
    
}